namespace Cik.Gapi4Net.Domain.Output.LocalSearch
{
    using Contract;
    using Core.Json;
    using Newtonsoft.Json;

    [JsonObject]
    public class MainResult : IMainResult
    {
        [JsonProperty("GsearchResultClass")]
        public string GsearchResultClass { get; set; }

        [JsonProperty("accuracy")]
        public int Accuracy { get; set; }

        [JsonProperty("addressLines")]
        public string[] AddressLines { get; set; }

        [JsonProperty("city")]
        public string City { get; set; }

        [JsonProperty("content")]
        public string Content { get; set; }

        [JsonProperty("country")]
        public string Country { get; set; }

        [JsonProperty("ddUrl")]
        public string DdUrl { get; set; }

        [JsonProperty("ddUrlFromHere")]
        public string DdUrlFromHere { get; set; }

        [JsonProperty("ddUrlToHere")]
        public string DdUrlToHere { get; set; }

        [JsonProperty("lat")]
        public double Lat { get; set; }

        [JsonProperty("listingType")]
        public string ListingType { get; set; }

        [JsonProperty("lng")]
        public double Lng { get; set; }

        [JsonProperty("maxAge")]
        public long MaxAge { get; set; }

        [JsonProperty("phoneNumbers")]
        [JsonConverter(typeof(CustomArrayCreationConverter<IPhoneNumbers, PhoneNumbers>))]
        public IPhoneNumbers[] PhoneNumbers { get; set; }

        [JsonProperty("region")]
        public string Region { get; set; }

        [JsonProperty("staticMapUrl")]
        public string StaticMapUrl { get; set; }

        [JsonProperty("streetAddress")]
        public string StreetAddress { get; set; }

        [JsonProperty("title")]
        public string Title { get; set; }

        [JsonProperty("titleNoFormatting")]
        public string TitleNoFormatting { get; set; }

        [JsonProperty("url")]
        public string Url { get; set; }

        [JsonProperty("viewportmode")]
        public string ViewPortMode { get; set; }
    }
}